home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / includes / ciframe.h < prev    next >
C/C++ Source or Header  |  1996-11-18  |  5KB  |  153 lines

  1. /**[f******************************************************************
  2.  *  CIFrame.h -- CIFrame Interface definition
  3.  *
  4.  *  Copyright (c) 1996 Adobe Systems, Inc. All Rights Reserved
  5.  *
  6.  *
  7.  * ABSTRACT: Frame interface
  8.  *
  9.  * USAGE:
  10.  *
  11.  * ROUTINES DEFINED:
  12.  * $Revision:   1.8  $
  13.  *
  14.  *
  15.  *
  16.  *
  17.  **f]******************************************************************/
  18.  
  19. #ifndef __CIFRAME_H
  20. #define __CIFRAME_H
  21.  
  22. #ifndef __CIOBJACC_H
  23.     #include "CIObjectAccess.h"
  24. #endif
  25.  
  26. const BYTE InvalValue    = 0xff;
  27.  
  28. // Frame shapes
  29. const WORD Unknown                  = 0;
  30. const WORD Box                      = 1;
  31. const WORD Oval                     = 2;
  32. const WORD RegularPolygon           = 3;
  33. const WORD IrregularPolygon         = 4;
  34.  
  35.  
  36. // Content type
  37. const BYTE TypeEmpty     = 0;
  38. const BYTE TypeText      = 1;
  39. const BYTE TypePicture   = 2;
  40.  
  41. // Horizontal alignment: For picture content only
  42. const BYTE AlignHorzLeft    = 0;
  43. const BYTE AlignHorzCenter  = 1;
  44. const BYTE AlignHorzRight   = 2;
  45. const BYTE AlignHorzCustom  = 3;
  46.  
  47. // Vertical alignment: For both picture and text contents
  48. const BYTE AlignVertTop     = 0;
  49. const BYTE AlignVertCenter  = 1;
  50. const BYTE AlignVertBottom  = 2;
  51. const BYTE AlignVertCustom  = 3;
  52.  
  53. // Scale type
  54. const BYTE Clip_To_Fit        = 0;
  55. const BYTE Size_To_Fit        = 1;
  56. const BYTE Scale_To_Fit       = 2;
  57.  
  58.  
  59. class CIFrame : public CIInterface
  60. {
  61. public:
  62.   // Is this object a frame?
  63.   // Use this to validate that a returned PMOBJ_REC really is a frame
  64.   // before calling other CIFrame routines.
  65.   virtual PMBool IsAFrame(PMOBJ_REC* pPMRec) = 0;
  66.  
  67.   // Change selected BOP objects into frames
  68.   virtual PMErr ToggleFrame() = 0;
  69.  
  70.   // Create an empty frame (returns filled in pFrameID if specified)
  71.   virtual PMErr CreateFrame(RECT* prBound, WORD wShape, PMOBJ_REC *pFrameID = NULL) = 0;
  72.  
  73.   // Place text insertion point inside a frame
  74.   virtual PMErr NewText(PMOBJ_REC* pPMRec) = 0;
  75.  
  76.   // Insert text into a frame
  77.   virtual PMErr InsertText(PMOBJ_REC* pPMRec, LPSTR pStr) = 0;
  78.  
  79.   // Get the content type of frames
  80.   // Returns Type_empty, TypeText or TypePicture
  81.   virtual PMErr GetContentType(PMOBJ_REC* pFrameID, BYTE* pType) = 0;
  82.  
  83.   // Is this frame empty?
  84.   virtual PMBool EmptyFrame(PMOBJ_REC* pFrameID) = 0;
  85.  
  86.   // Does this frame have content?
  87.   virtual PMBool FullFrame(PMOBJ_REC* pFrameID) = 0;
  88.  
  89.   // Get/Set the "maintain aspect ratio" attribute for frames.
  90.   virtual PMErr GetAspect(PMOBJ_REC* pFrameID, PMBool* pbAspect) = 0;
  91.   virtual PMErr SetAspect(PMOBJ_REC* pFrameID, PMBool bAspect) = 0;
  92.  
  93.   // Get/Set the horizontal alignment for picture content.
  94.   virtual PMErr GetHorzAlign(PMOBJ_REC* pFrameID, BYTE* pAlign) = 0;
  95.   virtual PMErr SetHorzAlign(PMOBJ_REC* pFrameID, BYTE align) = 0;
  96.  
  97.   // Get/Set the vertical alignment for picture content.
  98.   virtual PMErr GetVertAlign(PMOBJ_REC* pFrameID, BYTE* pAlign) = 0;
  99.   virtual PMErr SetVertAlign(PMOBJ_REC* pFrameID, BYTE align) = 0;
  100.  
  101.   // Get/Set the scale type for the frame.
  102.   virtual PMErr GetScaleType(PMOBJ_REC* pFrameID, BYTE* pScaleType) = 0;
  103.   virtual PMErr SetScaleType(PMOBJ_REC* pFrameID, BYTE scaleType) = 0;
  104.  
  105.   // Get/Set the margin for the text frame.
  106.   virtual PMErr GetMargin(PMOBJ_REC* pFrameID, RECT* prMargin) = 0;
  107.   virtual PMErr SetMargin(PMOBJ_REC* pFrameID, RECT* prMargin) = 0;
  108.  
  109. //*** Contents
  110.   // Get the content of a frame, if any.
  111.   virtual PMErr GetContent(PMOBJ_REC* pContID, PMOBJ_REC* pFrameID) = 0;
  112.  
  113.   // Attach a PM object to a frame.
  114.   virtual PMErr AttachContent(PMOBJ_REC* pFrameID = NULL, PMOBJ_REC* pContID = NULL) = 0;
  115.  
  116.   // Delete content of frame.
  117.   virtual PMErr DeleteContent(PMOBJ_REC* pFrameID = NULL) = 0;
  118.  
  119.   // Separate content from frame.
  120.   virtual PMErr SeparateContent(PMOBJ_REC* pFrameID = NULL) = 0;
  121.  
  122.   // Move content of frame by ptOffset.
  123.   virtual PMErr MoveContent(PMOBJ_REC* pFrameID, POINT ptOffset) = 0;
  124.  
  125.   // Scale content of frame according to the current scale type.
  126.   // bAspect indicates whether to maintain the aspect ratio.
  127.   virtual PMErr ScaleContent(PMOBJ_REC* pFrameID, PMBool bAspect) = 0;
  128.  
  129. //*** Size and position
  130.   // Move frame by ptOffset.
  131.   virtual PMErr MoveFrame(PMOBJ_REC* pFrameID, POINT ptOffset) = 0;
  132.  
  133.   // Resize frame to pRect.
  134.   virtual PMErr ResizeFrame(PMOBJ_REC* pFrameID, RECT* pRect) = 0;
  135.  
  136. //*** Links
  137.   // Get the linked frame of pFrameID, return the linked frame in pLinkID.
  138.   // bUpStream is true if we want to get the previous frame; otherwise, the
  139.   // next frame will be returned
  140.   virtual PMErr GetLinkFrame(PMOBJ_REC* pFrameID, PMOBJ_REC* pLinkID, PMBool bUpStream) = 0;
  141.  
  142.   // Set the linked frame of pFrameID, the frame to be linked is given in pLinkID.
  143.   // bUpStream is true if we want to set the previous frame; otherwise, the
  144.   // next frame will be set.
  145.   virtual PMErr SetLinkFrame(PMOBJ_REC* pFrameID, PMOBJ_REC* pLinkID, PMBool bUpStream) = 0;
  146.  
  147.   // Breaks the links of currently selected frames.
  148.   virtual PMErr BreakFrameLinks(PMOBJ_REC* pFrameID = NULL) = 0;
  149.  
  150. };
  151.  
  152. #endif
  153.